package com.shenmazong.library.service;

import com.shenmazong.library.entity.TbTaskChapter;
import com.shenmazong.library.entity.TbTaskSkillDetail;
import com.shenmazong.library.entity.TbTaskSkillLibrary;
import com.shenmazong.library.entity.TbTaskTheoryLibrary;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shenmazong.manage.entity.TbTaskTheoryTemplate;
import com.shenmazong.utils.ResultResponse;
import com.shenmazong.vo.BatchChooseIdVo;
import com.shenmazong.vo.ListParamVo;
import com.shenmazong.vo.RandomTheoryVo;
import com.shenmazong.vo.TaskTheoryListVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 *service Qi
 */
public interface TaskLibraryService extends IService<TbTaskTheoryLibrary> {

    ResultResponse onLineInputTaskTheory(TaskTheoryListVo taskTheoryListVo);

    ResultResponse uploadFileInputTaskTheory(MultipartFile file) throws IOException;

    ResultResponse updateTaskTheory(TbTaskTheoryLibrary tbTaskTheoryLibrary);

    ResultResponse deleteTaskTheoryByTheoryIds(BatchChooseIdVo chooseIdVo);

    ResultResponse deleteTaskTheoryByCourseIds(BatchChooseIdVo chooseIdVo);

    ResultResponse deleteTaskTheoryByChapterIds(BatchChooseIdVo chooseIdVo);

    ResultResponse listTaskTheoryLibrary(ListParamVo paramVo);

    ResultResponse getTaskTheoryById(TbTaskTheoryLibrary taskTheoryLibrary);

    ResultResponse saveTaskSkillLibrary(TbTaskSkillLibrary tbTaskSkillLibrary);

    ResultResponse deleteTaskSkillBySkillId(BatchChooseIdVo chooseIdVo);

    ResultResponse updateTaskSkillLibrary(TbTaskSkillLibrary tbTaskSkillLibrary);

    ResultResponse listTaskSkillLibrary(ListParamVo paramVo);

    ResultResponse saveTaskSkillDetail(List<TbTaskSkillDetail> detailList);

    ResultResponse deleteTaskSkillDetail(BatchChooseIdVo chooseIdVo);

    ResultResponse updateTaskSkillDetail(TbTaskSkillDetail tbTaskSkillDetail);

    ResultResponse listTaskSkillDetail(ListParamVo paramVo);

    ResultResponse saveTaskChapter(TbTaskChapter tbTaskChapter);

    ResultResponse deleteTaskChapter(BatchChooseIdVo chooseIdVo);

    ResultResponse updateTaskChapter(TbTaskChapter tbTaskChapter);

    ResultResponse listTaskChapter(ListParamVo paramVo);

    ResultResponse listAllTaskChapter();

    ResultResponse getTaskTaskTheory(TbTaskTheoryLibrary tbTaskTheoryLibrary);

    ResultResponse getTaskTaskSkill(TbTaskSkillLibrary tbTaskSkillLibrary);

    ResultResponse randomCreateTheory(RandomTheoryVo randomTheoryVo);

    ResultResponse uploadSkillFile(MultipartFile file) throws IOException;

    ResultResponse createTheoryToEsIndex();

    void timingTheoryToEs();

    ResultResponse listTaskTheoryLibraryByEs(ListParamVo paramVo);

}
